Method and device for displaying contact information in a presence and availability management system

ABSTRACT

A method and device of displaying contact information of a plurality of individuals for a subscriber of the contact information. According to one embodiment, the method includes, for each individual, receiving one or more addresses of the individual for each communication network for which the individual is available to the subscriber. The method also includes, for each individual, generating a single summary indicator that identifies the individual and summarizes whether the individual is capable of receiving certain data content types, whether the individual is available on certain network types or device types, and/or whether certain groups of people are available. In addition, the method includes displaying the single summary indicator for each individual to the subscriber.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority under 35 U.S.C. §119 to U.S.provisional patent application Serial No. 60/266,559, filed Feb. 5,2001, which is incorporated herein by reference.

BACKGROUND OF INVENTION

[0002] 1. Field of Invention

[0003] The present invention relates generally to communications and,more particularly, to presence and availability management systems.

[0004] 2. Description of the Background

[0005] A presence and availability management system enables users tocontrol their availability and how that is displayed to other users.Accordingly, users may select if they want to be available to any givenperson (or group of people) or not, as well as how that person (or groupof people) may or may not contact them. In addition, a presence andavailability management service enables users to view the availabilityof their contacts and use that information to determine whether or notand how to initiate communications.

[0006] Presence and availability management services have two primaryfunctions. First, to collect information from multiple sources todetermine the presence and, according to user-defined preferences, theavailability of a given person. For example, a presence and availabilitymanagement service needs information on what communications network auser is on, and whether or not the user is reachable for each of thenetworks. Second, a presence and availability management service mustdistribute the availability information of a given person to interestedindividuals on a selective basis, according to a variety of user-definedpreferences and settings.

[0007] In addition to those functions, conventional presence andavailability management services have two secondary functions. First, toconfigure access control settings. A presence and availabilitymanagement service provides users with the ability to configure anobserver's access settings, thereby giving users the ability to controlwhat contact information observers are allowed to view. Thus, users havethe choice of what information is published to each of their observers.Second, to store user information to enable the use of the presence andavailability management service regardless of the user's network device.By storing user information on the back-end of the presence andavailability management system, the presence and availability managementservice enables users to utilize its services regardless of the user'snetwork device as long as they have a device that is within acommunications network. Thus, users can access the presence andavailability management service if they are on a cellular phone, ahandheld device or a computer workstation.

[0008] In a conventional presence and availability management enabledcommunications system, individuals must request the appropriate presenceand availability information from the presence and availabilitymanagement sub-system when they want to communicate with otherindividuals on the communications network. However, this model poses twoissues. First, such systems do not make the presence and availabilityinformation about an individual continuously available to others. Thus,the user's interface cannot display the individual's presence andavailability information on a continuous basis. Accordingly, userscannot simply quickly glance at a contact list to see who is available.Second, having to retrieve presence and availability information onlywhen it is needed creates a delay at a critical point in time where usertolerance for it is low.

BRIEF SUMMARY OF THE INVENTION

[0009] In one general respect, the present invention is directed to amethod and device of displaying contact information of a plurality ofindividuals for a subscriber of the contact information. According toone embodiment, the method includes, for each individual, receiving oneor more addresses of the individual for each communication network forwhich the individual is available to the subscriber. The method alsoincludes, for each individual, art; generating a single summaryindicator that identifies the individual and summarizes whether theindividual is capable of receiving certain data content types. Inaddition, the method includes displaying the single summary indicatorfor each individual to the subscriber.

[0010] According to another embodiment, rather than generating a singlesummary indicator that identifies the individual and summarizes whetherthe individual is capable of receiving certain data content types, or inconjunction with such a step, the method may include generating a singlesummary indicator that summarizes whether the individual is available oncertain network types or device types. According to another embodiment,the method may include generating a single indicator that summarizeswhether a group of individuals is available.

BRIEF DESCRIPTION OF THE FIGURES

[0011] Embodiments of the present invention are described in conjunctionwith the following figures, wherein:

[0012]FIG. 1 is a block diagram of a presence and availability (P&A)management system according to one embodiment of the present invention;

[0013]FIG. 2 is an example of an availability profile according to oneembodiment of the present invention;

[0014]FIG. 3 is a diagram depicting what information subscribers atvarious access levels receive for the profile of FIG. 2;

[0015]FIG. 4 is a diagram of a P&A management server according to oneembodiment of the present invention;

[0016]FIG. 5 is a diagram illustrating the process flow through the P&Amanagement server of FIG. 4 according to one embodiment of the presentinvention;

[0017]FIG. 6 is a diagram of the P&A management server according to oneembodiment of the present invention;

[0018]FIG. 7 is a diagram illustrating the process flow through the P&Amanagement server of FIG. 6 according to one embodiment of the presentinvention;

[0019]FIG. 8 is a screen shot of a subscriber according to oneembodiment of the present invention;

[0020]FIG. 9 is a diagram of a client terminal according to oneembodiment of the present invention;

[0021]FIG. 10 is a diagram of the process flow through the clientterminal of FIG. 9 according to one embodiment of the present invention;and

[0022]FIG. 11 is a diagram of a system with a secondary domain nameserver according to one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0023] It is to be understood that the figures and descriptions of thefollowing embodiments have been simplified to illustrate elements thatare relevant for a clear understanding of the present invention, whileeliminating, for purposes of clarity, other elements. For example,certain operating system details and modules of computer processingdevices are not described herein. Those of ordinary skill in the artwill recognize, however, that these and other elements may be desirablein a typical communications network. However, because such elements arewell known in the art, and because they do not facilitate a betterunderstanding of the present invention, a discussion of such elements isnot provided herein.

[0024]FIG. 1 is a diagram of a presence and availability (P&A)management system 10 according to one embodiment of the presentinvention. The system includes a P&A management server 12 incommunication with a client terminal 22 via a network 16. The clientterminal 22 is sometimes referred to herein as “a client.” The P&Amanagement server 12 include a presence detection engine 18 and anavailability management engine 20. Profile information, as describedfurther herein, may be stored in a database 24 of the server 12. The P&Amanagement server 12 is in communication with at least one clientterminal 22. In FIG. 1, only one client terminal 22 is illustrated,although a number of other client terminals may also be in communicationwith the P&A management server 12 via the network 16. The clientterminal 22 is illustrated as a personal computer in FIG. 1, althoughaccording to other embodiments the client terminal may be another typeof communication device such as, for example, a wireless telephone (suchas a WAP (Wireless Application Protocol)-enabled phone) or a wireless orconnected personal digital assistant (PDA).

[0025] The network 16 may be any connected system of, for example,communication lines, channels, and radio interfaces, used to exchangeinformation between the P&A management server 12 and the client 22.According to one embodiment, the network 16 may include, for example,the Internet, an intranet, the public switched telephone network (PSTN),or a wireless telephone or radio network. According to one embodiment,the P&A management server 12 and client 22 may communicate via thenetwork 16 using an open draft TCP/IP based protocol.

[0026] As used herein, the term “presence” is defined as the ability ofan individual to access a particular communications network. Forexample, if a person is near a landline telephone or wireless telephonethat is switched on, that person is “present” on a telephone network,i.e., the person is able to use the telephone network to communicatewith other people also on the network. Conversely, if a person is notnear a landline telephone or wireless telephone, or the wirelesstelephone is switched off, then that person is not present on atelephone network, and thus unable to communicate with others on thetelephone network. Similarly, if a person uses an instant messaging (IM)application at a given point in time, the person is present on thatinstant messaging network.

[0027] In addition, as used herein the term “availability” is defined asthe willingness of an individual who is present on one or morecommunications networks to be reached by one or more persons. Followingthe telephone network example above, if a person is near a landline orwireless telephone and has the intention or willingness to answer thephone when a particular person calls, the person is not only present butavailable on the telephone network. However, if the person is unwillingor unable to answer either phone when it rings, although present, theperson is not available.

[0028] It should be noted that a person needs to be present on a networkin order to be available, yet the opposite is not necessarily true. Inaddition, presence is absolute. That is, a person is either present ornot on a given network. However, availability depends on, e.g., otherpeople, situations, circumstances, personal preferences, etc. Forexample, a person can be available to a first group of people, butunavailable to a separate group.

[0029] According to one embodiment, the system 10 employs apublisher-subscriber model. According to such an embodiment, anindividual defines a P&A profile set, which is stored on the P&Amanagement server 12. When the individual transmits a change in profileto the server 12, the server publishes the change to each of theconnected clients 22 that are subscribers of the individual'sinformation. The publisher-subscriber model enables subscribers toobserve a particular individual's P&A information instantly.

[0030] Hereinafter, a user of the client terminal 22 is typicallyreferred to as “subscriber.” Unless noted otherwise, the term“subscriber” is used synonymously with the term “observer.” Oneinstance, however, in which an observer is not the same as a subscriberis if someone requests an individual's P&A information just once,without placing a subscription for it. In FIG. 1, the system 10 isillustrated as including only one server 12 and one client 22, althoughother embodiments of the present invention contemplate a distributedarchitecture including multiple management servers and multiple clients.

[0031] An individual user of the system 10 may initially configure hisP&A profile settings in order to instruct the system 12 how hisinformation is to be distributed. According to one embodiment, theindividual may configure their P&A management profile set according tothe following steps. First, the individual is requested to enterinformation regarding each of the communication devices that theindividual uses and a corresponding address for each of those devices.For example, the individual may have a landline telephone with a phonenumber and a computer workstation with an e-mail address. Second, theindividual identifies and categorizes the people to whom he wants hisinformation published. This allows individuals to select the “moreimportant” people and to give them easier access, whereas the “lessimportant” people are given minimum access, and undesirable groups ofpeople are restricted from access altogether. These different grouplevels may be referred to as “access levels.” Third, the individual maydefine a series of profiles that describe a situation that theindividual may be in such as, for example, “at home,” “at office,” or“on the road.” Further, the individual may identify how he wishes to becommunicated with for each profile and for each access level. Inaddition, where several modes of communication over one medium arepossible, the individual may identify which mode is preferable.

[0032] For example, an individual may have an office profile asindicated in FIG. 2. Thus, a subscriber with an access level of“Important” would receive the items marked “Yes” in the “Important”column, with the preference indicated (where appropriate), therebymaking it very easy for “important” subscribers to communicate with theindividual. Persons in the “Normal” access level would receive lesscontact information than persons in the “Important” access level, andpersons in the “Restricted” access level would receive even less contactinformation. Persons in the “Blocked” access level would receive notcontact information at all. The individual may specify which personsbelong to each access level for each profile.

[0033] Accordingly, as illustrated in FIG. 3, subscribers in variousaccess groups would have access to different information regarding theindividual. Similarly, the individual may define other profiles fordifferent situations such as, for example, “at home,” “on the road,”“meeting” and “vacation.” Collectively, the individual's profile foreach of these situations may define a profile set.

[0034] As discussed, an individual may configure his profile such thatsubscribers at certain access levels have access to the individual's P&Ainformation at certain times. For example, the individual may configurehis profile such that his boss has access to the individual's P&A whilethe individual is at work; his wife has access all the time; and hisparents have access only on weekends while not at work. Accordingly,when the P&A management server 12 detects a change in, for example, theindividual's situation, the P&A management server 12 consults theindividual's defined rules and preferences (which may be stored by theP&A management server 12), and transmits the appropriate information tothe clients 22 for subscribers to the individual's information based onthe subscriber's access groups. The presence detection engine 18 maydetect a change in the individual's situation, as described furtherhereinafter, or the individual may communicate the change to themanagement server 12 directly.

[0035] Thus, with reference to the example mentioned previously, whenthe P&A management server 12 detects that the individual is at work, theserver 12 transmits the individual's updated P&A information to theclients 22 for the individual's boss and spouse. The information thatthe boss and spouse receive, however, may be different based on theiraccess levels, as discussed previously. For example, the boss may beinformed of the individual's instant messaging information, but theindividual's wife may not. When the individual returns home, the wife'sinformation may be updated and the individual's parent may beginreceiving information regarding the individual's P&A (although it maynot be the same as the wife's information depending on their accesslevels). The boss, however, will no longer have access to theindividual's information.

[0036] An individual may define his profile set, including his rules andpreferences, via a user-interface in communication with the P&Amanagement server 12. According to one embodiment, the user-interfacemay comprise a graphical user interface (GUI) application loaded on acomputer device in communication with the P&A management server 12. Oncedefined, the P&A management server 12 may store the profiles, rules andpreferences in a database (not shown). For security purposes, access toan individual's profiles etc. may be based on verification of a userPIN, password or other security mechanism. Accordingly, an individualmay modify his profile settings as necessary.

[0037] In the previous example, a change in the individual's physicallocation triggered situation changes, and thus a change of profile. Itshould be noted that other factors may trigger changes in theindividual's profile including, for example, time of day and theindividual's a mood, as explained further hereinbelow.

[0038]FIG. 4 is a diagram of the P&A management server 12 according toone embodiment of the present invention. As illustrated in FIG. 4, theserver 12 includes a presence detection engine 18 and an availabilitymanagement engine 20. The presence detection engine 18 may determine anindividual's presence upon particular networks based on various inputs,as described further hereinbelow. The presence detection engine 18 maytransmit the presence information to the availability management engine20, which in turn may determine the individual's availability based onthe presence information as well as additional information, such as theindividual's situation and defined rules and preferences. The determinedavailability information may then be transmitted to subscribers of theindividual's availability information via the network 16, as describedpreviously.

[0039] The engines 18, 20 may be implemented as software code to beexecuted by a processor in the server 12 using any suitable computerlanguage such as, for example, Java, C++ or Perl using, for example,conventional or object-oriented techniques. The software code may bestored as a series of instructions or commands on a computer readablemedium, such as a random access memory (RAM), a read only memory (ROM),a magnetic medium such as a hard-drive or a floppy disk, or an opticalmedium such as a CD-ROM.

[0040] As illustrated in FIG. 4, the presence detection engine 18 mayreceive various inputs to determine, to the extent possible, theindividual's presence. One type of input that the presence detectionengine 18 may use to help determine the individual's presence istime-based input 40. For example, based on time of day information andknown scheduling/calendar information, the presence detection engine 18may be able to determine an individual's presence. For example, if theindividual had scheduled to be in his office from 9am to 5pm, thepresence detection engine 18 may determine that during that time periodthe individual is present on the networks available to him in hisoffice, which may be, for example, telephone and instant messaging.

[0041] Another type of input that the presence detection engine 18 mayuse is user-location input 42. User-location information may besupplied, for example, from a number of possible networks or devices incommunication with the server 12. For example, the server 12 may includea radio receiver such that the presence detection engine 18 is incommunication with radio networks including, for example, a Bluetoothnetwork, that may communicate information relating to the individual'sphysical locale. In addition, the server 12 may be in communication witha GPS receiver associated with the user. According to anotherembodiment, the presence detection engine 18 may be in communicationwith Enhanced 911 (E-911) networks for possible user-locationinformation.

[0042] In addition, the presence detection engine 18 may receive inputfrom various hardware devices that may relate information regarding userlocation. For example, the presence detection engine 18 may receiveinformation from cameras, such as security cameras located at a place ofemployment. Thus, the camera information may relate information as towhether the individual is in the locale of his place of employment.Additionally, the presence detection engine 18 may receive input fromsensors, such as pressure sensors, to help ascertain the locus of theindividual. The pressure sensors may be, for example, located in theoffice chair or the computer keyboard of the individual, thus providinginformation regarding the individual's locus. Furthermore, the presencedetection engine 18 may receive inputs from security equipment, such asactive badge sensors, smart card sensors and/or magnetic card readers tohelp ascertain the location of the individual.

[0043] Additionally, the presence detection engine 18 may be incommunication with other networks/devices to help determine presenceinformation. For example, the presence detection engine 18 may be incommunication with a SS7 network of the public switched telephonenetwork (PSTN) to determine if the individual is present on a landlinetelephone such as, for example, the landline desk phone 44 in hisoffice. For example, the presence detection engine 18 may be incommunication with a service control point (SCP) of the SS7 network.According to another embodiment, the presence detection engine 18 mayreceive inputs from a Home Location Register (HLR) of a wirelesstelephone network to determine if the individual is present on hismobile phone 46. The wireless telephone network may be, for example, anAMPS (Advanced Mobile Phone Service) network, a TACS (Total AccessCommunication System) network, a UMTS (Universal MobileTelecommunications System), a GSM network, a CDMA network, a TDMAnetwork, a GPRS (General Packet Radio Service) network or a wirelessCDPD (Cellular Digital Packet Data) network. According to otherembodiments, the presence detection engine 18 may also or instead of bein communication with a short messaging system center (SMS-C) of a shortmessaging system network or a gateway GPRS support node (GGSN).According to another embodiment, the presence detection engine 18 may bein communication with a server of a computer network.

[0044] The presence detection engine 18 may also receive inputs fromcomputer networks such as, for example, a local Ethernet, a LAN, awireless LAN, a MAN, a WAN, or a TCP/IP network, to determine if theindividual is present on such a network, such as via his personalcomputer (PC) 48. Similarly, the presence detection engine 18 may be incommunication with communication networks to determine whether anindividual is present on other devices such as, for example, a personaldigital assistant (PDA) 50 or a pager 52.

[0045] Based on the presence information on such devices 44-52, thepresence detection engine 18 may determine additional information aboutthe individual, such as the individual's status 54 on particularnetworks (such as on or off) or the individual's physical location 56.In addition, based on information regarding each of these devices 44-53the presence detection engine 18 may determine the individual's currentcapabilities 58 such as, for example, whether he can receive voiceinformation, data files, audio files, video files, etc.

[0046] The presence information ascertained by the presence detectionengine 18 is communicated to availability management engine 20, whichdetermines the individual's availability based thereon. To determine theindividual's availability, the availability management engine 20 mayreceive information transmitted by the individual regarding a change intheir situation 60. Such a change in user situation may be communicatedto the availability management engine 20 through a communication networksuch as, for example, an IP network, a telephone network, or a radionetwork.

[0047] The availability management engine 20 may consult theindividual's rules and preferences to determine the individual'savailability based on, for example, the presence information from thepresence detection engine 18 and the individual's situation. Theindividual's rules and preferences maybe stored in a database 64, asillustrated in FIG. 4, or may be stored with the profile information inthe database 24. Additionally, the individual may specify the observers62 who receive the individual's contact information. The observers maybe specified according to, for example, a group basis or an individualbasis. The observer classification information may also be stored in adatabase, such as the profile database 24.

[0048] The availability information may then be published to theindividual's subscribers (via the client terminals). Because theavailability information is determined, in part, based on the presenceinformation from the presence detection engine 18, the availabilitymanagement engine 20 may modify the published contact information sentto subscribers based on the presence information if, for example, theindividual's profile is inconsistent with the actual individual'spresence. Thus, availability management engine 20 may be configured totake the presence information into account and cease from relaying theinconsistent contact information to subscribers.

[0049]FIG. 5 is a diagram of the process flow of the P&A managementserver 12 according to one embodiment of the present invention. Theprocess initiates at block 88 where the presence detection engine 18ascertains presence information regarding the user as describedpreviously. At block 90, the user's current profile is retrieved fromthe profile database 24 based on the current user situation. At block92, the list of observers for each access level (e.g., important,normal, restricted, work, blocked, etc.) for the current profile isretrieved.

[0050] At block 94, the availability management engine 20 may determinethe user's availability for each access level based on the user'sprofile. At block 98 the availability information is distributed(published) to the subscribers of the information via the network 16 ona per access level basis.

[0051] According to another embodiment, the availability managementengine 20 may first retrieve the appropriate profile based on theindividual's situation. The individual's presence and availabilityinformation may then be filtered before it is published to theobservers. FIG. 6 is a diagram of the P&A management server 12 accordingto such an embodiment. The illustrated embodiment includes an adaptivefeedback module 100, which may be implemented, for example, as softwarecode to be executed by a processor of the server 12 using any suitablecomputer language such as, for example, Java, C++ or Perl using, forexample, conventional or object-oriented techniques. The software codemay be stored as a series of instructions or commands on a computerreadable medium, such as a random access memory (RAM), a read onlymemory (ROM), a magnetic medium such as a hard-drive or a floppy disk,or an optical medium such as a CD-ROM.

[0052] The adaptive feedback module 100 may monitor the publishedavailability information and, if the information is, for example,inaccurate or unusable, make adjustments to either the presencedetection engine 18 or the availability management engine 20 to ensurethe integrity of the published availability information. For example, ifthe published availability information for an individual indicates thathe is available on his mobile telephone, but if the last three timessomeone called the individual on his mobile telephone the individual didnot answer, then the adaptive feedback module 100 may instruct thepresence detection engine 18 of this condition such that the publishedavailability information for the individual will not longer indicatemobile telephone availability to the appropriate access levels untilthere is evidence that the individual resumes usage of his mobiletelephone. The adaptive feedback module 100 may determine whether theindividual's availability information is, for example, inaccurate orunusable based on information received from the appropriatecommunication networks with which the P&A management server 12interfaces, as described previously.

[0053] According to one embodiment, the adaptive feedback module 100 mayoffer the individual a suggestion that the individual has the option ofchoosing to accept or reject. For example, if the adaptive feedbackmodule 100 determines that the individual has not answered his lastthree telephone calls although he is present on the network, theadaptive feedback module 100 may send the individual a message askingwhether he wants to discontinue publishing whether he is available onthe telephone network. In this way, the individual has the ability totune his presence and availability information.

[0054]FIG. 7 is a diagram of the process flow through the P&A managementserver 12 of FIG. 6 according to such an embodiment. The processinitiates at block 102, where the availability management engine 20retrieves the individual's profile based on the individual's presentsituation, as discussed previously. At block 104, the availabilitymanagement engine 20 may retrieve the user-specified list of subscribersfor each access level of the profile. Next, at block 106, based on theuser's profile, the availability management engine 20 may determine theavailability of the user for each access level.

[0055] At block 107, the presence detection engine 18 may ascertain theindividual's presence on each of the monitored networks, as discussedpreviously. Based on this information, at block 108, the adaptivefeedback module 100 may filter the individual's P&A information, asdiscussed previously. Next, at block 109, the P&A management server 12may publish the information to each of the subscribers.

[0056] The P&A management server 12 may transmit the availabilityinformation to the subscriber at the client terminal 22. FIG. 8 is ascreen shot of the information that may be displayed to a subscriber ata client terminal 22 according to one embodiment of the presentinvention. As illustrated, the subscriber may navigate the list of namesin the right hand window (“Contacts Program”) to access the P&Ainformation regarding the highlighted individual in the left hand window(“Contact Properties”). The indicator in the right hand window adjacentto each listed individual may identify the availability means for theparticular individual. For example, in FIG. 8 Alex is available bytelephone and instant messaging, but Tom is only available by telephoneand Pete is only available by instant messaging. The contact informationin the left hand window may be updated based on availability informationtransmitted from the identified individual's P&A management server 12.

[0057] As discussed previously, according to one embodiment the P&Amanagement server 12 may store individuals' P&A information profiles inthe database 24. By storing the P&A information profiles on the server12, individuals only need to send small amounts of information to theserver 12 when changing their profile. For example, when an individualusing a mobile device requests a switch to, for example, an “At Home”situation, the individual only needs to send a small amount ofinformation via the mobile device instructing the server 12 to implementthe “At Home” profile rather than having to send all the P&A informationassociated with the “At Home” situation, which may be considerablylarger. By storing the P&A information profiles on the server 12, theserver 12 may have the necessary information available when individualsswitch profiles. Thus, individuals only need to let the server 12 knowwhich situation profile they prefer.

[0058] Storing the P&A information profiles on the server 12additionally reduces the amount of resources required to invoke aprofile switch operation. This may be an important feature, particularlywhen mobile and/or handheld devices are used. This is becauseconventional mobile and handheld devices, in contrast to conventionalcomputer workstations, do not have the capability to store and processlarge amounts of information in relatively brief time periods.Furthermore, by reducing the amount of information transmitted, thesystem 10 avoids slower response times, increased latency and in generalimproves the user's services and experience.

[0059] In conventional P&A management systems that support heterogeneouscommunications networks, a given person may appear several times in thesubscriber's contact list—each time corresponding to an availableaddress. For example, each phone number and IM address of a particularindividual may be listed. According to an embodiment of the presentinvention, as illustrated in the “Contacts Program” window of FIG. 8,the display at the client terminal 22 may relate the various entries foran individual and merge them together as one entry. For example, withreference to FIG. 8, there is one entry (indicator) for Alex, indicatingthat Alex is available on a telephone network and an IM network. This isindicated by the telephone icon and the IM icon next to Alex's name.Thus, the single summary indicator may be a summary of the individual'savailability, with the single summary indicator containing severaldifferent icons or states that convey the availability information.According to other embodiments, the icons may indicate types of data theindividual is available to receive such as, for example, text files,audio files, streaming audio files, video files, streaming video files,graphics files and streaming graphics files. According to oneembodiment, the single indicator may be used to indicate the networktype that the individual is available on such as, for example, IM,telephone, facsimile, etc. Other network types include a short messagingsystem (SMS) network, a voice over IP (VoIP) network, a paging networkand a two-way paging network.

[0060] According to another embodiment, the single indicator mayindicate the device type that the individual is available one, such as,for example, wireless telephone, landline telephone, personal digitalassistant (PDA), computer, etc. Other device types include a SMS phone,a pager, a two-way pager, a wireless PDA, a WAP phone, and a GPRS phone.

[0061] According to another embodiment, the single indicator may be usedto indicate the availability of a group of people based on whether atleast one person of the group (or some other threshold number of peoplefrom the group) is available. According to such an embodiment, when atleast one individual from the group is available, the single indicatormay merge the availability of each individual of the group into oneindicator that summarizes whether the sales staff is available. Forexample, the group may provide a service such as, for example, technicalsupport, customer service, sales, etc. Thus, for example, if at leastone member of the sales staff is available, the single indicator mayindicate that the sales staff is available. Any type of group may beused. For example, other groups include employees of a company,employees of a given department, field sales representative, customerrelationship management employees. Other groups include, for example,volunteers and members of a club or social group.

[0062] Furthermore, a large number of inputs for each of an individual'scommunications devices on the various networks may be processed usingthe presence detection engine 20 to determine the P&A status of thatindividual, thus allowing the results to be combined in a singleavailability indicator. For example, if John Doe has three telephonenumbers (e.g., home, work and wireless) and is currently present andavailable on only one telephone network, the server 12 may notifysubscribers of John Doe's information that he is present and availablefor telephone calls regardless of the particular telephone John Doe iscurrently capable of using. Accordingly, when a subscriber wishes tocontact Joe Doe via instant messaging, the server 12 provides theappropriate IM address to the subscriber, taking into account John Doe'spreference settings for the subscriber's access group as stored, forexample, in the rules and preferences database 64. Thus, embodiments ofthe present invention may provide a user-friendly interface allowingsubscribers to contact individuals without having to be concerned aboutdifferent communication devices, their addresses and capabilities.Subscribers may instead refer to a single summary indicator and use thatinformation to initiate point-to-point contact.

[0063]FIG. 9 is a block-diagram of the client terminal 22 according toone embodiment for realizing the single summary indicator describedpreviously. As illustrated in FIG. 9, the client terminal includes anindicator module 110 in communication with a user interface 112. Theindicator module 110 may be, for example, implemented as software codeto be executed by a processor of the client terminal 22 using anysuitable computer language such as, for example, Java, C++ or Perlusing, for example, conventional or object-oriented techniques. Thesoftware code may be stored as a series of instructions or commands on acomputer readable medium, such as a random access memory (RAM), a readonly memory (ROM), a magnetic medium such as a hard-drive or a floppydisk, or an optical medium such as a CD-ROM. The user interface 112 mayinclude, for example, a GUI (Graphical User Interface) or a CUI(Character-based user interface).

[0064] The indicator module 110 may receive availability informationfrom one or more P&A management servers 12 and merge the contactinformation for each individual into a single summary indicator, asdescribed previously in connection with FIG. 8, for display by the userinterface 112. The indicator may identify the individual, such as byname, as illustrated in FIG. 8. In addition, as illustrated in FIG. 8,the indicator generated by the indicator module 110 may indicate whetherthe individual is available to receive, for example, certain datacontent types. For example, with reference to FIG. 8, the indicator forJonathan identifies Jonathan by name and indicates that Jonathan isavailable to the subscriber to receive data content by telephone andinstant messaging.

[0065]FIG. 10 is a diagram of the process flow through the indicatormodule 110 according to one embodiment. The process initiates at block120, where the indicator module 110 receives the availabilityinformation of each individual to which the client is a subscriber (nindividuals). For example, with reference to FIG. 8, the client terminalreceives the availability information for Alex, Jonathan, Kit, Corby,Cyndi, Tom, Pete, Roberto, Cecelia, as well as the individuals in the“Mint” folder. At block 122, the indicator module 110 may generate asingle summary indicator for each of the n individuals. For example, theindicator module 110 may relate the various addresses for a givenindividual and merge them into a single summary indicator for each ofthe individuals, as illustrated in FIG. 8.

[0066] At block 124, a counter, k, is set to equal 1. At block 126, forindividual k for which the client subscribes to contact information, theindicator module 110 may determine whether an address for each datacontent type (e.g., telephone, text (IM), video, graphic, audio, etc.)has been transmitted from the P&A management server 12. For a particularcontent type, if no address has been received, the process advances toblock 128 where the indicator module 110 displays that individual k isnot available for the particular content type. For example, withreference to FIG. 8, the indicator for Tom indicates that Tom is notavailable to receive IM (text) data. Conversely, if at block 126 it isdetermined that an address has been received for the particular contenttype, the process advances to block 130 where the indicator module 110may display that the individual is available to receive the particulardata content type. This process may be repeated for each data contenttype.

[0067] Once the availability of individual k has been determined foreach data content type, the process advances to block 132, where k isset to equal k+1. From block 132 the process advances to block 134 whereit is determined whether k equals n. If so, the process is completed atblock 136. If not, the process returns to block 124 where the processmay be repeated for the next individual.

[0068] In FIG. 9, the indicator module 110 is illustrated as residing onthe client terminal 22. According to other embodiments, the indicatormodule 110 may reside, for example, on the P&A management server 12.According to such an embodiment, the P&A management server 12 mayforward the indicator information via the network 16 to the clientterminal 22 for display thereby. Such an embodiment may be advantageouswhere, for example, the client 22 is a device of limited processingcapability such as, for example, a WAP-enabled telephone.

[0069] In contrast to some prior P&A management systems, embodiments ofthe present invention utilize a publisher-subscriber model. That is, theindividual's availability information is published on an event-triggeredbasis to subscribers of the individual's availability information,rather than transmitted only when requested by the subscriber.Accordingly, changes in an individual's availability are broadcastinstantly to subscribers of the individual's P&A information, assumingthose subscribers satisfy the individual's rules and preferencesregarding dissemination of his P&A information. The P&A managementserver 12, as described previously, may maintain the individual'sprofile settings. In addition, the subscribers may be equipped withclient software that allows the P&A information of various individualsto be displayed for the subscriber, such as illustrated in conjunctionwith FIG. 8.

[0070] Additionally, according to one embodiment, users of the P&Amanagement system 10 may configure their P&A profiles to specify howtheir availability information is distributed. Individuals mayaccomplish this task by specifying a number of different access levelsand situations. Subscribers of the individual's information are onlyprovided with certain availability information depending on their accesslevel and the situation. In addition, the P&A profiles may be stored onthe P&A management server 12 (such as in database 24). This obviates theneed for individuals to re-transmit all their contact information eachtime their availability changes. Rather, the P&A management server 12may determine the individual's availability based merely on theindividual's profile and information regarding the individual'ssituation.

[0071] For individuals that have a presence and availability on theInternet or other types of IP networks, their domain name address isoften an extension of a domain name server for an organization (e.g., anemployer's corporate intranet). Consequently, communications with theindividual may typically be established by resolving the domain nameserver for the organization. However, for certain services, individualswith addresses at those domain name servers are at the mercy of thesystem administrator to modify their address entries in order to use thenew services. For example, an individual desiring to use a new instantmessaging service through a corporate intranet would require the systemadministrator to add the appropriate address entry to the corporateintranet. Often system administrators are not inclined to do this.

[0072] According to an embodiment of the present invention, illustratedin FIG. 11, this potential dilemma is addressed by providing a fallbackresolution mechanism. For example, a subscriber at client terminal 22may first attempt to communicate with an individual at client terminal140 via one or more intermediate relay hosts 142. One of the hosts 142may be, for example, an instant messaging host or a presence andavailability host.

[0073] If one relay host 142 a does not know the address for the nextintermediate relay host 142 b, the first relay host 142 a may attempt tocommunicate with the second relay host 142 b by, for example, resolvinga record (such as an MX record for e-mail) for the second relay host 142b at a primary domain name server 144. If that fails, the first relayhost 142 a could attempt to resolve the record at a secondary domainname server 146. The address for the record at the primary domain nameserver 144 may be a hierarchical extension of the address of thesecondary domain name server 146, as described further herein. As usedherein, the term “domain name server” includes both domain name serversfor UNIX networks as well as Windows networks, commonly referred to as“WINS” (Windows Internet Naming Service).

[0074] The secondary domain name server 146 may include a resolver 148and an IP address database 150. The IP address database may include theIP address for the intermediate relay host 142 b that the primary domainserver 144 did not include. When directed to the secondary domain nameserver 146 by the primary domain name server 144, the resolver 148 mayrespond with the address of the second intermediate relay host afterinterrogating the database 150. The secondary domain name server 146 maysupply the address directly to the first relay host 142 a or, accordingto another embodiment, may supply it to the primary domain name server144, which in turn may supply the address to the relay host 142 a.

[0075] For example, if the hostname of the client terminal 140 isjoe@abcd.com, and Joe wanted to use a new instant messaging service thatrequired the system administrator for the abcd.com domain name server144 to add a DNS entry of im.abcd.com to point to the appropriate host142 b, but the system administrator refused to so modify the domain nameserver 144, the first domain name server could direct the relay host 142a to the secondary domain name server 146, efg.com, to resolveim.abcd.com.resolver.efg.com. The secondary domain name server 146 maybe configured appropriately through a web-based interface and, whenqueried, would direct the relay host 142 a to the appropriate server (toim.abcd.com in this example). According to one embodiment, a query, byemail for example, may be sent to joe@abcd.com to determine whether theentry may be legitimately made.

[0076] The process just described is not limited to situations where ahost does not know the address of another host. The process may also beutilized to allow a client terminal (such as terminals 22 or 140)resolve the address of a host 142 and vice versa. The primary domainname server 144 may be programmed to supply the address for thesecondary domain name server 146 to the intermediate host 142 or clientterminal. According to other embodiment, the client terminal orintermediate host may be programmed with the address of the secondarydomain name server 146 for when the primary domain name server 144 isnot capable of resolving the request.

[0077] Although the present invention has been described herein withrespect to certain embodiments, those of ordinary skill in the art willrecognize that many modifications and variations of the presentinvention may be implemented. For example, with respect to FIG. 12,additional hierarchical domain name servers may be utilized. Theforegoing description and the following claims are intended to cover allsuch modifications and variations.

What is claimed is:
 1. A method of displaying contact information of aplurality of individuals for a subscriber of the contact information,comprising: for each individual, receiving one or more addresses of theindividual for each communication network for which the individual isavailable to the subscriber; for each individual, generating a singlesummary indicator that identifies the individual and summarizes whetherthe individual is capable of receiving certain data content types; anddisplaying the single summary indicator for each individual to thesubscriber.
 2. The method of claim 1, wherein generating a singlesummary indicator includes generating a single summary indicator thatidentifies whether the individual is capable of receiving a data contenttype selected from a group consisting of a telephone communication, atext message, a video file, an audio file, and a graphics file.
 3. Themethod of claim 2, wherein displaying the single summary indicatorincludes displaying the single summary indicator for each individual viaa user interface.
 4. A computer readable medium having stored thereoninstructions which, when executed by a processor, cause the processorto: receive, for a plurality of individuals, one or more addresses ofeach individual for each communication network for which the individualis available to a subscriber the contact information; generate, for eachindividual, a single summary indicator that identifies the individualand whether the individual is capable of receiving certain data contenttypes; and display the single summary indicator for each individual tothe subscriber.
 5. The computer readable medium of claim 4, havingfurther stored thereon instructions which, when executed by theprocessor, cause the process to generate a single summary indicator thatidentifies whether the individual is capable of receiving a data contenttype selected from a group consisting of a telephone communication, atext message, a video file, an audio file, and a graphics file.
 6. Adevice for displaying contact information of a plurality of individualsfor a subscriber of the contact information, comprising: an indicatormodule for receiving, for each individual, one or more addresses of theindividual for each communication network for which the individual isavailable to the subscriber and generating, for each individual, asingle summary indicator that identifies the individual and whether theindividual is capable of receiving certain data content types; and auser interface in communication with the indicator module.
 7. The deviceof claim 6, wherein the data content types are selected from the groupconsisting of a telephone communication, a voice communication, a videofile, a streaming video file, an audio file, a streaming audio file, atext file, a graphics file, and a streaming graphics file.
 8. A devicefor displaying contact information of a plurality of individuals for asubscriber of the contact information, comprising: first means forreceiving, for each individual, one or more addresses of the individualfor each communication network for which the individual is available tothe subscriber and generating, for each individual, a single summaryindicator that identifies the individual and whether the individual iscapable of receiving certain data content types; and second means fordisplaying the single summary indicator to the subscriber.
 9. The deviceof claim 8, wherein the first means is further for generating a singlesummary indicator that identifies whether the individual is capable ofreceiving a data content type selected from a group consisting of atelephone communication, a voice communication, a text file, a textmessage, a video file, a streaming video file, an audio file, a steamingaudio file and a graphics file.
 10. A method of displaying contactinformation of a plurality of individuals for a subscriber of thecontact information, comprising: for each individual, receiving one ormore addresses of the individual for each communication network forwhich the individual is available to the subscriber; for eachindividual, generating a single summary indicator that identifies theindividual and summarizes whether the individual is capable of receivinga communication via certain network types; and displaying the singlesummary indicator for each individual to the subscriber.
 11. The methodof claim 10, wherein generating a single summary indicator includesgenerating a single summary indicator that identifies whether theindividual is capable of receiving a communication via a network typeselected from the group consisting of an IM network, a telephonenetwork, a computer network, a SMS network, a VoIP network, a pagingnetwork, and a two-way paging network.
 12. A computer readable mediumhaving stored thereon instructions which, when executed by a processor,cause the processor to: receive, for a plurality of individuals, one ormore addresses of each individual for each communication network forwhich the individual is available to a subscriber the contactinformation; generate, for each individual, a single summary indicatorthat identifies the individual and whether the individual is capable ofreceiving a communication via certain network types; and display thesingle summary indicator for each individual to the subscriber.
 13. Thecomputer readable medium of claim 12, having further stored thereoninstructions which, when executed by the processor, cause the process togenerate a single summary indicator that identifies whether theindividual is capable of receiving a communication via a network typeselected from a group consisting of an IM network, a telephone network,a computer network, a SMS network, a VoIP network, a paging network, anda two-way paging network.
 14. A device for displaying contactinformation of a plurality of individuals for a subscriber of thecontact information, comprising: an indicator module for receiving, foreach individual, one or more addresses of the individual for eachcommunication network for which the individual is available to thesubscriber and generating, for each individual, a single summaryindicator that identifies the individual and whether the individual iscapable of receiving a communication via certain network types; and auser interface in communication with the indicator module.
 15. Thedevice of claim 14, wherein the network types are selected from thegroup consisting of an IM network, a telephone network, a computernetwork, a SMS network, a VoIP network, a paging network, and a two-waypaging network.
 16. A device for displaying contact information of aplurality of individuals for a subscriber of the contact information,comprising: first means for receiving, for each individual, one or moreaddresses of the individual for each communication network for which theindividual is available to the subscriber and generating, for eachindividual, a single summary indicator that identifies the individualand whether the individual is capable of receiving a communication viacertain network types; and second means for displaying the singlesummary indicator to the subscriber.
 17. The device of claim 16, whereinthe first means is further for generating a single summary indicatorthat identifies whether the individual is capable of receiving acommunication via a network type selected from a group consisting of anIM network, a telephone network, a computer network, a SMS network, aVoIP network, a paging network, and a two-way paging network.
 18. Amethod of displaying contact information of a plurality of individualsfor a subscriber of the contact information, comprising: for eachindividual, receiving one or more addresses of the individual for eachcommunication network for which the individual is available to thesubscriber; for each individual, generating a single summary indicatorthat identifies the individual and summarizes whether the individual iscapable of receiving a communication via certain device types; anddisplaying the single summary indicator for each individual to thesubscriber.
 19. The method of claim 18, wherein generating a singlesummary indicator includes generating a single summary indicator thatidentifies whether the individual is capable of receiving acommunication via a device type selected from the group consisting of awireless telephone, a landline telephone, a PDA, a computer, a SMSphone, a pager, a two-way pager, a wireless PDA, a WAP phone, and a GPRSphone.
 20. A computer readable medium having stored thereon instructionswhich, when executed by a processor, cause the processor to: receive,for a plurality of individuals, one or more addresses of each individualfor each communication network for which the individual is available toa subscriber the contact information; generate, for each individual, asingle summary indicator that identifies the individual and whether theindividual is capable of receiving a communication via certain devicetypes; and display the single summary indicator for each individual tothe subscriber.
 21. The computer readable medium of claim 20, havingfurther stored thereon instructions which, when executed by theprocessor, cause the process to generate a single summary indicator thatidentifies whether the individual is capable of receiving acommunication via a device type selected from a group consisting of awireless telephone, a landline telephone, a PDA, a computer network, aSMS phone, a pager, a two-way pager, a wireless PDA, a WAP phone, and aGPRS phone.
 22. A device for displaying contact information of aplurality of individuals for a subscriber of the contact information,comprising: an indicator module for receiving, for each individual, oneor more addresses of the individual for each communication network forwhich the individual is available to the subscriber and generating, foreach individual, a single summary indicator that identifies theindividual and whether the individual is capable of receiving acommunication via certain device types; and a user interface incommunication with the indicator module.
 23. The device of claim 22,wherein the device types are selected from the group consisting of awireless telephone, a landline telephone, a PDA, a computer network, aSMS phone, a pager, a two-way pager, a wireless PDA, a WAP phone, and aGPRS phone.
 24. A device for displaying contact information of aplurality of individuals for a subscriber of the contact information,comprising: first means for receiving, for each individual, one or moreaddresses of the individual for each communication network for which theindividual is available to the subscriber and generating, for eachindividual, a single summary indicator that identifies the individualand whether the individual is capable of receiving a communication viacertain device types; and second means for displaying the single summaryindicator to the subscriber.
 25. The device of claim 24, wherein thefirst means is further for generating a single summary indicator thatidentifies whether the individual is capable of receiving acommunication via a device type selected from a group consisting of awireless telephone, a landline telephone, a PDA, a computer network, aSMS phone, a pager, a two-way pager, a wireless PDA, a WAP phone, and aGPRS phone.
 26. A method of displaying contact information of a group ofindividuals for a subscriber of the contact information, comprising: foreach individual of the group, receiving one or more addresses of theindividual for each communication network for which the individual isavailable to the subscriber; generating a single summary indicator thatsummarizes whether the group is available based on whether at least oneindividual of the group is available; and displaying the single summaryindicator for the group to the subscriber.
 27. The method of claim 26,wherein the group provides a service.
 28. The method of claim 27,wherein the service is selected from a group consisting of technicalsupport, customer service, and sales.
 29. The method of claim 26,wherein the group is selected from a group consisting of employees of acompany, employees of a department, field sales employees, customerrelationship management employees, volunteers, club members, and socialgroup members.
 30. A computer readable medium having stored thereoninstructions which, when executed by a processor, cause the processorto: receive, for a plurality of individuals of a group, one or moreaddresses of each individual for each communication network for whichthe individual is available to a subscriber the contact information;generate a single summary indicator that summarizes whether the group ofthe is available based on whether at least one individual of the groupis available; and display the single summary indicator for group to thesubscriber.
 31. The computer readable medium of claim 30, wherein thegroup provides a service.
 32. The computer readable medium of claim 31,wherein the service is selected from a group consisting of technicalsupport, customer service, and sales.
 33. The computer readable mediumof claim 30, wherein the group is selected from a group consisting ofemployees of a company, employees of a department, field salesemployees, customer relationship management employees, volunteers, clubmembers, and social group members.
 34. A device for displaying contactinformation of a group of individuals providing a service for asubscriber of the contact information, comprising: an indicator modulefor receiving, for each individual, one or more addresses of theindividual for each communication network for which the individual isavailable to the subscriber and generating a single summary indicatorthat summarizes whether the group is available based on whether at leastone individual of the group is available; and a user interface incommunication with the indicator module.
 35. The device of claim 34,wherein the group provides a service.
 36. The device of claim 35,wherein the service is selected from a group consisting of technicalsupport, customer service, and sales.
 37. The device of claim 34,wherein the group is selected from a group consisting of employees of acompany, employees of a department, field sales employees, customerrelationship management employees, volunteers, club members, and socialgroup members.
 38. A device for displaying contact information of agroup of individuals providing a service for a subscriber of the contactinformation, comprising: first means for receiving, for each individual,one or more addresses of the individual for each communication networkfor which the individual is available to the subscriber and generating asingle summary indicator that summarizes whether the group is availablebased on whether at least one individual of the group is available; andsecond means for displaying the single summary indicator to thesubscriber.
 39. The device of claim 38, wherein the group provides aservice.
 40. The device of claim 39, wherein the service is selectedfrom a group consisting of technical support, customer service, andsales.
 41. The device of claim 38, wherein the group is selected from agroup consisting of employees of a company, employees of a department,field sales employees, customer relationship management employees,volunteers, club members, and social group members.